// 环境IP地址
const IP = 'localhost';
// 请求状态码
export const SUCCESS = 1000;
export const FAILED = 1001;
export const VALIDATE_FAILED = 1002;
export const TOKEN_FAILED = 1003;
export const TOKEN_EXPIRING_SOON = 1004;
export const FORBIDDEN = 1005;
// MinIO服务地址
export const MINIO_HOST = `http://192.168.159.77:9001/lesson-bucket`;
// 子项目地址
export const LESSON_SERVER_HOST = `http://${IP}:5277`;
export const LESSON_WEBSOCKET_HOST = `ws://${IP}:5001`;
// ES项目地址
export const LESSON_SEARCH_HOST = `http://${IP}:5003`;

/* 将时间戳转为日期 */
export function toDateStr(timestamp) {
    let date = new Date(timestamp);
    let yyyy = date.getFullYear();
    let mm = date.getMonth() + 1;
    mm = mm < 10 ? '0' + mm : mm;
    let dd = date.getDate();
    dd = dd < 10 ? ('0' + dd) : dd;
    let hh = date.getHours();
    hh = hh < 10 ? ('0' + hh) : hh;
    let mi = date.getMinutes();
    mi = mi < 10 ? ('0' + mi) : mi;
    let ss = date.getSeconds();
    ss = ss < 10 ? ('0' + ss) : ss;
    return yyyy + '-' + mm + '-' + dd + 'T' + hh + ':' + mi + ':' + ss;
}

/* 将日期字符串转为时间戳，字符串格式要求 'yyyy-mm-ddThh:mi:ss' */
export function toTimeStamp(dateStr) {
    // 将字符串中的 `-` 替换为 `/`
    dateStr = dateStr.replace('T', ' ').replaceAll('-', "/");
    // 将日期字符串转为date实例
    let date = new Date(Date.parse(dateStr));
    // 获取13位时间戳
    return date.getTime();
}

/* 将JSON数据转为QS字符串 */
export function jsonToQs(json) {
    return Object.keys(json).map(key => {
        if (Array.isArray(json[key])) {
            return json[key].map(e => key + '=' + e).join('&');
        }
        return key + '=' + json[key]
    }).join('&');
}

/* 生成len位随机字符串 */
export function randomStr(len) {
    // 将随机小数转成36进制字符串，消除所有点后，截取后len位字符串并返回
    return Math.random().toString(36).replaceAll('.', '').slice(-len);
}